package com.wh1200.mybatis.xmlless.constant

import com.wh1200.mybatis.xmlless.annotations.*


/**
 *
 * @author 吴昊
 * @date 2024/1/19 15:25
 * @since v0.0.0
 * @version 1.0
 */
object Annotations {

  const val KOTIN_TRANSIENT = "kotlin.jvm.Transient"
  const val LAST_MODIFIED_DATE = "org.springframework.data.annotation.LastModifiedDate"
  const val LAST_MODIFIED_BY = "org.springframework.data.annotation.LastModifiedBy"
  const val CREATED_DATE = "org.springframework.data.annotation.CreatedDate"
  const val CREATED_BY = "org.springframework.data.annotation.CreatedBy"
  val DELETED_BY = DeletedBy::class.java.name
  val DELETED_DATE = DeletedDate::class.java.name
  val JOIN_TABLE_COLUMN: String = JoinTableColumn::class.java.name
  val JOIN_OBJECT: String = JoinObject::class.java.name
  val COUNT: String = Count::class.java.name
  val PROPERTY_MAPPING = PropertyMapping::class.java.name

  /**
   * @author 吴昊
   * @date 2024/01/19
   * @version 1.0
   * @since v4.0.0
   */
  object Jakarta {

    const val GENERATED_VALUE = "jakarta.persistence.GeneratedValue"
    const val NOT_NULL = "jakarta.validation.constraints.NotNull"
    const val NOT_BLANK = "jakarta.validation.constraints.NotBlank"
    const val NOT_EMPTY = "jakarta.validation.constraints.NotEmpty"
    const val ID = "jakarta.persistence.Id"
    const val TABLE = "jakarta.persistence.Table"
    const val COLUMN = "jakarta.persistence.Column"
    const val JOIN_COLUMN = "jakarta.persistence.JoinColumn"
    const val TRANSIENT = "jakarta.persistence.Transient"
    const val VERSION = "jakarta.persistence.Version"
  }

  /**
   * @author 吴昊
   * @date 2024/01/19
   * @version 1.0
   * @since v4.0.0
   */
  object Javax {

    const val GENERATED_VALUE = "javax.persistence.GeneratedValue"
    const val NOT_NULL = "javax.validation.constraints.NotNull"
    const val NOT_BLANK = "javax.validation.constraints.NotBlank"
    const val NOT_EMPTY = "javax.validation.constraints.NotEmpty"
    const val ID = "javax.persistence.Id"
    const val TABLE = "javax.persistence.Table"
    const val COLUMN = "javax.persistence.Column"
    const val JOIN_COLUMN = "javax.persistence.JoinColumn"
    const val TRANSIENT = "javax.persistence.Transient"
    const val VERSION = "jakarta.persistence.Version"

  }

  /**
   * @author 吴昊
   * @date 2024/01/19
   * @version 1.0
   * @since v4.0.0
   */
  object Plus {

    const val TABLE_FIELD = "com.baomidou.mybatisplus.annotation.TableField"
    const val ID = "com.baomidou.mybatisplus.annotation.TableId"

  }

  object Spring {
    const val VERSION = "org.springframework.data.annotation.Version"
  }

}
